package offer;

/**
 * Creared with IntelliJ IDEA.
 * Description:给定一个数组 A[0,1,...,n-1] ,请构建一个数组 B[0,1,...,n-1] ,其中 B 的元素 B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]（除 A[i] 以外的全部元素的的乘积）。程序中不能使用除法。（注意：规定 B[0] = A[1] * A[2] * ... * A[n-1]，B[n-1] = A[0] * A[1] * ... * A[n-2]）
 * 对于 A 长度为 1 的情况，B 无意义，故而无法构建，用例中不包括这种情况。
 * User:yxd
 * Date:2022-07-22
 * Time:18:49
 */
public class JZ66 {
    public int[] multiply(int[] A) {


        int[] B = new int[A.length];
        B[0] = 1;
        for(int i = 1;i < A.length;i++){
            B[i] = B[i - 1] * A[i - 1];
        }
        //此时表示将左边的数全部乘完了，下面乘右边的所有数
        int tmp = 1;
        for(int i = A.length - 1;i >= 0;i--){
            B[i] *= tmp;
            tmp *= A[i];
        }
        return B;
    }
}
